package com.quanyan.user.mapper;

import com.quanyan.comment.response.LableBaseInfo;
import com.quanyan.user.model.vo.VideoLabel;
import com.quanyan.user.model.vo.response.RespVideo;
import com.quanyan.user.model.vo.response.RespVideoDetail;
import com.quanyan.user.response.RespPlaceVideoInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by huadongyang on 2017/2/27.
 */
public interface DiscoveryVideoMapper {
    /**
     * 获取视频详情
     *
     * @param videoId
     * @return
     */
    RespVideoDetail getDiscoveryVideoDetail(Integer videoId);


    /**
     * 获取视频标签集合
     *
     * @param videoId
     * @return
     */
    List<String> getVideoLabelNames(Integer videoId);

    /**
     * 获取视频标签基本信息
     * @param videoId
     * @return
     */
    List<LableBaseInfo> getLableBaseInfos(Integer videoId);

    /**
     *获取达人视频活动Ids
     *
     * @param videoId
     * @return
     */
    List<Integer> getDarenVideoActivityIds(Integer videoId);

    /**
     * 获取相关视频
     * @param categoryId
     * @param videoId
     * @return
     */
    List<RespVideo> getRecommendedVideos(@Param("categoryId") Integer categoryId, @Param("videoId") Integer videoId);

    /**
     *  更新
     * @param videoId  视频id
     */
    void updateVideoPV(Integer videoId);


    /**
     * 批量获取视频详情
     * @param videoIds
     * @return
     */
    List<RespVideoDetail> getVideoDetails(@Param("list") List<Integer> videoIds);


    /**
     * 获取约运动的id集合
     * @param videoId
     * @return
     */
    List<Integer> getExerciseActivityIds(Integer videoId);

    /**
     * placeIds  场馆id
     * @return
     */
    List<RespPlaceVideoInfo> getPlaceVideoInfos(@Param("placeIds") List<Integer> placeIds);


    /**
     *
     * @param placeId
     * @param pageSize
     * @return
     */
    List<RespPlaceVideoInfo>  getPlaceVideosByPlaceId(@Param("placeId") Integer placeId, @Param("pageSize") Integer pageSize);


    List<VideoLabel> batchVideoLabelNames(@Param("list") List<Integer> list);

    /**
     * 根据视频id 获取标签id集合
     * @param videoId
     * @return
     */
    List<Integer> getLableIds(Integer videoId);
}
